package service;

import dto.Request;
import model.NodeInfo;

import java.util.List;

/**
 * 数据复制服务接口
 * 用于主节点向从节点同步数据
 */
public interface ReplicationService {

    /**
     * 初始化复制服务，连接到所有从节点
     * @param slaveNodes 从节点列表
     */
    void initialize(List<NodeInfo> slaveNodes);

    /**
     * 复制请求到所有从节点
     * @param request 要复制的请求
     */
    void replicate(Request request);

    /**
     * 异步复制请求
     * @param request 要复制的请求
     */
    void replicateAsync(Request request);

    /**
     * 关闭与所有从节点的连接
     */
    void shutdown();

    /**
     * 获取从节点连接状态
     * @return 各从节点连接状态的Map
     */
    java.util.Map<String, Boolean> getSlaveStatus();
} 